package com.rc.web.service.impl;

import com.mybatisflex.spring.service.impl.ServiceImpl;

import com.rc.pojo.po.IntegralDetail;
import com.rc.pojo.vo.IntegralDetailListVO;
import com.rc.web.mapper.IntegralDetailMapper;
import com.rc.web.service.IntegralDetailService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 积分服务实现类
 * 提供积分明细相关的业务逻辑实现
 */
@Service
@RequiredArgsConstructor
public class IntergralServiceImpl extends ServiceImpl<IntegralDetailMapper, IntegralDetail> implements IntegralDetailService {

    /**
     * 获取积分明细列表
     * @return 积分明细VO，包含总积分和明细列表
     */
    @Override
    public IntegralDetailListVO getList() {
        // 获取所有积分明细记录
        List<IntegralDetail> list = this.list();

        // 计算总积分
        int total = list.stream()
                .mapToInt(IntegralDetail::getIntegral)
                .sum();

        // 构建并返回VO对象
        return IntegralDetailListVO.builder()
                .total(total)
                .detailList(list)
                .build();
    }

    @Override
    public boolean addIntegral(Integer integral, String title) {
        // 使用Builder模式创建积分明细记录
        IntegralDetail detail = IntegralDetail.builder()
                .integral(integral)
                .title(title)
                .build();
        
        // 保存记录
        return this.save(detail);
    }
}
